﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
using newtelligence.DasBlog.Runtime;
using dasBlog.Services.Contracts.Rsd;

namespace newtelligence.DasBlog.Web.Services
{

    [ServiceContract(Namespace = "urn:schemas-newtelligence-com:dasblog:edit-services", ConfigurationName = "IEditService")]
    public interface IEditService
    {

        [OperationContract(Action = "urn:schemas-newtelligence-com:dasblog:edit-services/CanEdit", ReplyAction = "*")]
        [XmlSerializerFormat()]
        bool CanEdit(string username, string password);

        // CODEGEN: Generating message contract since message part namespace (http://archipelago.phrasewise.com/rsd) does not match the default value (urn:schemas-newtelligence-com:dasblog:edit-services)
        [OperationContract(Action = "urn:schemas-newtelligence-com:dasblog:edit-services/GetRsd", ReplyAction = "*")]
        [XmlSerializerFormat()]
        [ServiceKnownType(typeof(EntryBase))]
        [return: MessageParameter(Name = "rsd")]
        GetRsdResponse GetRsd(GetRsdRequest request);

        [OperationContract(Action = "urn:schemas-newtelligence-com:dasblog:edit-services/DeleteEntry", ReplyAction = "*")]
        [XmlSerializerFormat()]
        [ServiceKnownType(typeof(EntryBase))]
        void DeleteEntry(string entryId, string username, string password);

        // CODEGEN: Generating message contract since message part namespace (urn:newtelligence-com:dasblog:runtime:data) does not match the default value (urn:schemas-newtelligence-com:dasblog:edit-services)
        [OperationContract(Action = "urn:schemas-newtelligence-com:dasblog:edit-services/UpdateEntry", ReplyAction = "*")]
        [XmlSerializerFormat()]
        [ServiceKnownType(typeof(EntryBase))]
        UpdateEntryResponse UpdateEntry(UpdateEntryRequest request);

        // CODEGEN: Generating message contract since message part namespace (urn:newtelligence-com:dasblog:runtime:data) does not match the default value (urn:schemas-newtelligence-com:dasblog:edit-services)
        [OperationContract(Action = "urn:schemas-newtelligence-com:dasblog:edit-services/CreateEntry", ReplyAction = "*")]
        [XmlSerializerFormat()]
        [ServiceKnownType(typeof(EntryBase))]
        CreateEntryResponse CreateEntry(CreateEntryRequest request);

        // CODEGEN: Generating message contract since the wrapper name (GetEntryByDateAndTitle) of message GetEntryByDateAndTitle does not match the default value (GetEntry)
        [OperationContract(Action = "urn:schemas-newtelligence-com:dasblog:edit-services/GetEntryByDateAndTitle", ReplyAction = "*")]
        [XmlSerializerFormat()]
        [ServiceKnownType(typeof(EntryBase))]
        GetEntryByDateAndTitle1 GetEntry(GetEntryByDateAndTitle request);

        // CODEGEN: Generating message contract since the wrapper name (GetEntryByEntryID) of message GetEntryByEntryID does not match the default value (GetEntry1)
        [OperationContract(Action = "urn:schemas-newtelligence-com:dasblog:edit-services/GetEntryByEntryID", ReplyAction = "*")]
        [XmlSerializerFormat()]
        [ServiceKnownType(typeof(EntryBase))]
        GetEntryByEntryID1 GetEntry1(GetEntryByEntryID request);
    }




    [MessageContract(WrapperName = "GetRsd", WrapperNamespace = "urn:schemas-newtelligence-com:dasblog:edit-services", IsWrapped = true)]
    public partial class GetRsdRequest
    {

        public GetRsdRequest()
        {
        }
    }



    [MessageContract(WrapperName = "GetRsdResponse", WrapperNamespace = "urn:schemas-newtelligence-com:dasblog:edit-services", IsWrapped = true)]
    public partial class GetRsdResponse
    {

        [MessageBodyMember(Namespace = "http://archipelago.phrasewise.com/rsd", Order = 0)]
        [System.Xml.Serialization.XmlElement(IsNullable = true)]
        public RsdRoot rsd;

        public GetRsdResponse()
        {
        }

        public GetRsdResponse(RsdRoot rsd)
        {
            this.rsd = rsd;
        }
    }



    [MessageContract(WrapperName = "UpdateEntry", WrapperNamespace = "urn:schemas-newtelligence-com:dasblog:edit-services", IsWrapped = true)]
    public partial class UpdateEntryRequest
    {

        [MessageBodyMember(Namespace = "urn:newtelligence-com:dasblog:runtime:data", Order = 0)]
        [System.Xml.Serialization.XmlElement(IsNullable = true)]
        public Entry entry;

        [MessageBodyMember(Namespace = "urn:schemas-newtelligence-com:dasblog:edit-services", Order = 1)]
        public string username;

        [MessageBodyMember(Namespace = "urn:schemas-newtelligence-com:dasblog:edit-services", Order = 2)]
        public string password;

        public UpdateEntryRequest()
        {
        }

        public UpdateEntryRequest(Entry entry, string username, string password)
        {
            this.entry = entry;
            this.username = username;
            this.password = password;
        }
    }



    [MessageContract(WrapperName = "UpdateEntryResponse", WrapperNamespace = "urn:schemas-newtelligence-com:dasblog:edit-services", IsWrapped = true)]
    public partial class UpdateEntryResponse
    {

        [MessageBodyMember(Namespace = "urn:schemas-newtelligence-com:dasblog:edit-services", Order = 0)]
        public string UpdateEntryResult;

        public UpdateEntryResponse()
        {
        }

        public UpdateEntryResponse(string UpdateEntryResult)
        {
            this.UpdateEntryResult = UpdateEntryResult;
        }
    }



    [MessageContract(WrapperName = "CreateEntry", WrapperNamespace = "urn:schemas-newtelligence-com:dasblog:edit-services", IsWrapped = true)]
    public partial class CreateEntryRequest
    {

        [MessageBodyMember(Namespace = "urn:newtelligence-com:dasblog:runtime:data", Order = 0)]
        [System.Xml.Serialization.XmlElement(IsNullable = true)]
        public Entry entry;

        [MessageBodyMember(Namespace = "urn:schemas-newtelligence-com:dasblog:edit-services", Order = 1)]
        public string username;

        [MessageBodyMember(Namespace = "urn:schemas-newtelligence-com:dasblog:edit-services", Order = 2)]
        public string password;

        public CreateEntryRequest()
        {
        }

        public CreateEntryRequest(Entry entry, string username, string password)
        {
            this.entry = entry;
            this.username = username;
            this.password = password;
        }
    }



    [MessageContract(WrapperName = "CreateEntryResponse", WrapperNamespace = "urn:schemas-newtelligence-com:dasblog:edit-services", IsWrapped = true)]
    public partial class CreateEntryResponse
    {

        [MessageBodyMember(Namespace = "urn:schemas-newtelligence-com:dasblog:edit-services", Order = 0)]
        public string CreateEntryResult;

        public CreateEntryResponse()
        {
        }

        public CreateEntryResponse(string CreateEntryResult)
        {
            this.CreateEntryResult = CreateEntryResult;
        }
    }



    [MessageContract(WrapperName = "GetEntryByDateAndTitle", WrapperNamespace = "urn:schemas-newtelligence-com:dasblog:edit-services", IsWrapped = true)]
    public partial class GetEntryByDateAndTitle
    {

        [MessageBodyMember(Namespace = "urn:schemas-newtelligence-com:dasblog:edit-services", Order = 0)]
        public System.DateTime entryDate;

        [MessageBodyMember(Namespace = "urn:schemas-newtelligence-com:dasblog:edit-services", Order = 1)]
        public string entryTitle;

        public GetEntryByDateAndTitle()
        {
        }

        public GetEntryByDateAndTitle(System.DateTime entryDate, string entryTitle)
        {
            this.entryDate = entryDate;
            this.entryTitle = entryTitle;
        }
    }



    [MessageContract(WrapperName = "GetEntryByDateAndTitleResponse", WrapperNamespace = "urn:schemas-newtelligence-com:dasblog:edit-services", IsWrapped = true)]
    public partial class GetEntryByDateAndTitle1
    {

        [MessageBodyMember(Namespace = "urn:newtelligence-com:dasblog:runtime:data", Order = 0)]
        [System.Xml.Serialization.XmlElement(IsNullable = true)]
        public Entry GetEntryByDateAndTitleResult;

        public GetEntryByDateAndTitle1()
        {
        }

        public GetEntryByDateAndTitle1(Entry GetEntryByDateAndTitleResult)
        {
            this.GetEntryByDateAndTitleResult = GetEntryByDateAndTitleResult;
        }
    }



    [MessageContract(WrapperName = "GetEntryByEntryID", WrapperNamespace = "urn:schemas-newtelligence-com:dasblog:edit-services", IsWrapped = true)]
    public partial class GetEntryByEntryID
    {

        [MessageBodyMember(Namespace = "urn:schemas-newtelligence-com:dasblog:edit-services", Order = 0)]
        public string entryId;

        public GetEntryByEntryID()
        {
        }

        public GetEntryByEntryID(string entryId)
        {
            this.entryId = entryId;
        }
    }



    [MessageContract(WrapperName = "GetEntryByEntryIDResponse", WrapperNamespace = "urn:schemas-newtelligence-com:dasblog:edit-services", IsWrapped = true)]
    public partial class GetEntryByEntryID1
    {

        [MessageBodyMember(Namespace = "urn:newtelligence-com:dasblog:runtime:data", Order = 0)]
        [System.Xml.Serialization.XmlElement(IsNullable = true)]
        public Entry GetEntryByEntryIDResult;

        public GetEntryByEntryID1()
        {
        }

        public GetEntryByEntryID1(Entry GetEntryByEntryIDResult)
        {
            this.GetEntryByEntryIDResult = GetEntryByEntryIDResult;
        }
    }


    public interface EditServiceSoapChannel : IEditService, IClientChannel
    {
    }
}
